home *** CD-ROM | disk | FTP | other *** search
- /* $Filename: WormWars/Source/engine.h $
- * $VER: WormWars 6.3 $
- * $Description: Constants for game engine $
- *
- * © Copyright 2000 James R. Jacobs.
- */
-
- #define GOATMOVE 5 // assert (GOATMOVE != 0);
- #define NOSE 2 // if (NOSE > PROTECTORS) nose disabled
- #define NOSEDISTANCE 4
- #define WORMQUEUELIMIT 15
- #define DOGQUEUELIMIT 120
- #define TIMELIMIT 599
- #define SECONDSPERLEVEL 120 // assert (SECONDSPERLEVEL <= TIMELIMIT);
- #define UNDRIFT 5 // assert (UNDRIFT != 0);
-
- // dog dormancy
-
- #define DORMANT 0
- #define AWAKENING 1
- #define CHASING 10
-
- // frequencies
-
- #define FREQ_PENGUIN 1
- #define FREQ_DRIP 1
- #define FREQ_MAX 70
- #define FREQ_DEC 2
- #define FREQ_MIN 10
- #define FREQ_TELEPORT 240
-
- #define BONUSPENGUINSPEED 7
- #define BONUSDRIPSPEED 11
- #define BONUSFRAGSPEED 9
- #define BONUSMISSILESPEED 9
- #define CLOUDSPEED 9
- #define DOGSPEED 8
- #define DRIPSPEED 13
- #define FRAGSPEED 10
- #define GOATSPEED 19
- #define MAGNETSPEED 9
- #define MISSILESPEED 12
- #define ORBSPEED 11
- #define PENGUINSPEED 23
- #define TIMEBOMBSPEED 60
-
- // population limits
-
- #define CREATURES 50
- #define MAGNETS 20
- #define PROTECTORS 2 // <=4!
-
- // vampirism
-
- #define DRIPBLOOD 1
- #define GOATBLOOD 1
- #define ORBBLOOD 1
- #define PENGUINBLOOD 1
-
- // jump distances
-
- #define FASTDISTANCE 5
- #define NORMALDISTANCE 4
- #define SLOWDISTANCE 3
- #define VERYSLOWDISTANCE 2
-
- // skill points
-
- #define EMPTYPOINT 1
- #define TAILBONUS 1
- #define TURNTOSILVER 5
- #define TURNTOGOLD 10
- #define SILVERPOINT 10
- #define TIMEBONUS 10
- #define ENCLOSUREPOINT 10
- #define TELPOINT 20
- #define GOLDPOINT 20
- #define HITSHOT 50
- #define KILLGOAT 50
- #define KILLPENGUIN 50
- #define KILLWORM 100
- #define BOMBOVEREDGE 100
- #define SKULLPOINT 100
- #define LETTERPOINT 100
- #define DRIPBONUS 100
- #define LEVELBONUS 100
-
- // pain ratings
-
- #define DOGPAIN 5
- #define DRIPPAIN 5
- #define HEADPAIN 5
- #define MISSILEPAIN 5
- #define ORBPAIN 5
- #define PROTECTORPAIN 5
- #define REMNANTPAIN 5
- #define TELEPORTPAIN 5
- #define WORMFIREPAIN 5
- #define WHIRLWINDPAIN 5
-
- #define BOMBPAIN 3
- #define CLOUDPAIN 3
- #define FRAGMENTPAIN 3
- #define LIGHTNINGPAIN 3
- #define METALPAIN 3
- #define OTHERTAILPAIN 3
- #define PENGUINPAIN 3
- #define PENGUINPAIN 3
-
- #define GOATPAIN 2
- #define SLAYERPAIN 2
- #define SLIMEPAIN 2
-
- #define STONEPAIN 1
- #define TAILPAIN 1
- #define WOODPAIN 1
-
- // objects
-
- #define BOMBADD 5 // in squares radius
- #define BOMBRAND 25
- #define CLOCKADD 10 // in seconds
- #define CLOCKRAND 20
- #define CUTTERADD 20 // in VERYSLOWs
- #define CUTTERRAND 25
- #define FREEDOMADD 20 // in VERYSLOWs
- #define FREEDOMRAND 50
- #define ICEADD 5 // in VERYSLOWs
- #define ICERAND 5
- #define MODEADD 30 // in VERYSLOWs
- #define MODERAND 40
- #define TREASUREADD 10 // in seconds
- #define TREASURERAND 10
-
- MODULE void changefield(void);
- MODULE void clearletters(void);
- MODULE void death(void);
- MODULE void fastloop(void);
- MODULE void killall(void);
- MODULE void magnetloop(void);
- MODULE void newfield(void);
- MODULE void newhiscores(void);
- MODULE void slowloop(void);
-
- MODULE void bombblast(SBYTE triggerer, SBYTE player, SBYTE centrex, SBYTE centrey);
- MODULE void bothcol(SBYTE player, SBYTE x, SBYTE y);
- MODULE void bouncegoat(SBYTE which, SBYTE x, SBYTE y);
- MODULE void __inline change(SBYTE x, SBYTE y, UBYTE image);
- MODULE void cloudbullet(UBYTE which, SBYTE x, SBYTE y, SBYTE deltay);
- MODULE void copyfield(SBYTE source, SBYTE destination);
- MODULE void createmissile(UBYTE player, SBYTE x, SBYTE y);
- MODULE void creatureloop(SBYTE which);
- MODULE void dogqueue(SBYTE which, SBYTE deltax, SBYTE deltay);
- MODULE void drawcause(SBYTE player, SBYTE state);
- MODULE void drawletter(SBYTE player, SBYTE letter, SBYTE state);
- MODULE void explosion(SBYTE x, SBYTE y, SBYTE exceptionx, SBYTE exceptiony);
- MODULE void newlevel(SBYTE player);
- MODULE void orbscore(SBYTE which, ULONG score);
- MODULE void orbsplit(SBYTE which);
- MODULE void protcol(SBYTE player, SBYTE x, SBYTE y, SBYTE thisprot);
- MODULE void putletter(SBYTE player);
- MODULE void ramming(SBYTE player);
- MODULE void reflect(UBYTE which);
- MODULE void turnworm(SBYTE player, SBYTE deltax, SBYTE deltay);
- MODULE void wormbullet(SBYTE player);
- MODULE void wormletter(SBYTE player, SBYTE c);
- MODULE void wormloop(SBYTE player);
- MODULE void wormcol(SBYTE player, SBYTE x, SBYTE y, ABOOL enclosed);
-
- MODULE void dogdog(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void dogdrip(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void dogfrag(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void dogmissile(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void dogorb(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void dogpenguin(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void dogwhirlwind(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void dripfrag(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void dripmissile(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void driporb(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void drippenguin(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void dripwhirlwind(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void fragfrag(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void fragorb(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void fragmissile(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void fragpenguin(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void fragwhirlwind(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void missilemissile(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void missilepenguin(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void missilewhirlwind(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void orborb(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void orbmissile(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void orbpenguin(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void orbwhirlwind(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void penguinwhirlwind(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void whirlwindwhirlwind(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void wormdog(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void wormdrip(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void wormfrag(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void wormmissile(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void wormorb(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void wormpenguin(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void wormwhirlwind(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void wormworm(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void protdog(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void protdrip(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void protfrag(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void protmissile(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void protorb(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void protpenguin(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void protwhirlwind(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void protworm(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void protprot(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void clouddog(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void clouddrip(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void cloudfrag(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void cloudmissile(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void cloudorb(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void cloudpenguin(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void cloudwhirlwind(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void cloudworm(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void cloudprot(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
- MODULE void cloudcloud(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
-
- MODULE SWORD atleast(SWORD value, SWORD minimum);
- MODULE ABOOL blocked(SBYTE which, SBYTE deltax, SBYTE deltay);
- MODULE ABOOL bounceorb(SBYTE which, SBYTE x, SBYTE y);
- MODULE SBYTE bsign(SBYTE value);
- MODULE ABOOL findempty(SBYTE* x, SBYTE* y, SBYTE first, SBYTE last);
- MODULE SBYTE onlyworm(ABOOL alive);
- MODULE SBYTE slowdown(SBYTE speed, ABOOL nitro);
- MODULE SBYTE speedup(SBYTE speed, ABOOL nitro);
- MODULE ULONG squareblast(SBYTE type, SBYTE player, SBYTE thissy, SBYTE x, SBYTE y, ABOOL cutter);
- MODULE UBYTE whichcreature(SBYTE x, SBYTE y, UBYTE species, UBYTE exception);
- MODULE SBYTE whichteleport(SBYTE x, SBYTE y);
- MODULE ULONG wormobject(UBYTE player, SBYTE x, SBYTE y);
- MODULE SWORD wsign(SWORD value);
-
- // Must have blank line at EOF.
-